// pages/orders/orders.js
 var orderArr;
 var goodArr;
var totalPrice=0;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userAddress:null,
    carArr:[],
    totalPrice:0
  },
 async onSubmit(){
      if(!this.data.userAddress){
        return wx.showToast({
          title: '请选择收货地址',
          icon: "none",
          mask: true,
        })
      }
      if(this.data.totalPrice==0)
      return wx.showToast({
        title: '请选择要购买的商品',
        icon: "none",
        mask: true,
      })
wx.showLoading({
  title: '加载中...',
})
  var res1= await wx.cloud.callFunction({
      name:"xiangcun_order_add",
      data:{
        carArr:this.data.carArr,
        userAddress:this.data.userAddress
      }
    })

      var res2 = await wx.cloud.callFunction({
        name:"xiangcun_pay",
        data:{
          orderNum:res1.result.orderNum,
          totalPrice:this.data.totalPrice
        }
      })
      var payment = res2.result.payment;
     await wx.requestPayment({
      ...payment
      }).then(async res=>{ 
      await this.updateOrder(res1);
      await this.updateProject();
      }).catch(err=>{   
      })
      wx.hideLoading()
      wx.reLaunch({
        url: '/pages/mine/mine',
      })
  },

 async updateOrder(res1){
  await wx.cloud.callFunction({
    name:"xiangcun_order_update",
    data:{
      orderNum:res1.result.orderNum
    }
  })
  },

   async updateProject(){
      var _carArr = this.data.carArr;
      var carArr = _carArr.map(item=>{
        return {goodid : item.goodid,num:item.num}
      })
     await wx.cloud.callFunction({
      name:"xiangcun_product_update",
      data:{
        carArr
      }
    }).then(res=>{
      console.log(res);
    })
    },

//获取地址
  clickAddress(){
    wx.chooseAddress({
      success:res=>{
        delete res.errMsg;
        console.log(res);
        this.setData({
          userAddress:res
        })
        wx.cloud.callFunction({
          name:"xiangcun_address_add",
          data:{
            userAddress:res
          }
        }).then(e=>{
            console.log(e);
        })
      },
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    wx.showLoading({
      title: '数据加载中...',
      mask: true,
    })
    totalPrice=0;
    await this.getMyAddress()
    if(options.orderArr)
    {
      orderArr =JSON.parse(options.orderArr)
      this.getCarData();
    }
    if(options.goodArr){
      goodArr = JSON.parse(options.goodArr)
      goodArr[0].picurl=[goodArr[0].picurl]
      totalPrice = goodArr[0].num*goodArr[0].price
      this.setData({
        carArr:goodArr,
        totalPrice:totalPrice
      })
    } 
    wx.hideLoading() 
  },

  getCarData(){
    wx.cloud.callFunction({
      name:"xiangcun_cart_get",
      data:{
        orderArr
      }
    }).then(res=>{
      res.result.data.forEach(item=>{
        totalPrice+=item.price*item.num
        item.picurl=[item.picurl]
      })
      this.setData({
        carArr:res.result.data,
        totalPrice:totalPrice
      })
    })
  },



  //获取数据库地址
  async  getMyAddress(){
   await wx.cloud.callFunction({
      name:"xiangcun_address_get"
    }).then(res=>{
      this.setData({
        userAddress:res.result.data[0]
      })
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})